﻿Imports Capa_de_Acceso_a_Datos

Public Class frmRegistrarRecepcionPresentacion
    Private Shared mesId As String
    Private Shared ObraSocialXPlanId As Integer
    Private Shared CronogramaPresentacionAno As String
    Private Shared farmaciaId As Integer
    Private indiceFila As Integer
    Private estiloAnulada As DataGridViewCellStyle

#Region "Carga e Iiciación"

    Private Sub frmRegistrarRecepcionPresentacion_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
        Me.Dispose()
    End Sub
    Private Sub frmRegistrarRecepcionPresentacion_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        cargarComboCronogramaPresentacion()
        estiloAnulada = New DataGridViewCellStyle
        estiloAnulada.BackColor = Color.Gray
        deshabilitarDetalles()
        deshabilitarEntregas()
    End Sub

    Private Sub cargarComboCronogramaPresentacion()
        Dim pre As CronogramaPresentacionDAO = New CronogramaPresentacionDAO()
        Dim ds As DataSet = Nothing
        ds = CronogramaPresentacionDAO.comboCronogramaPresentacionDs()
        ddlCronogramaPresentacion.DataSource = ds.Tables(0)
        ddlCronogramaPresentacion.DisplayMember = "Descripcion"
        ddlCronogramaPresentacion.ValueMember = "CronogramaPresentacionId"
    End Sub

    Private Sub cargarGvEntrega(ByVal cronoId As Integer, ByVal FarmaciaId As Integer)
        Dim dt As DataTable = Nothing
        dt = EntregaDAO.obtenerDetallesDeCronograma(cronoId, FarmaciaId)
        gvEntrega.DataSource = dt
        'darFormatoGrillaEntregas()
    End Sub

    'Private Sub darFormatoGrillaEntregas()
    '    gvEntrega.Columns("MesId").Visible = False
    '    gvEntrega.Columns("ObraSocialXPlanId").Visible = False
    '    gvEntrega.Columns("CronogramaPresentacionAno").Visible = False
    '    gvEntrega.Columns("Descripcion").Width = 200
    '    gvEntrega.Columns("Descripcion").HeaderText = "Obra Social / Plan / Quincena"
    '    gvEntrega.Columns("EntregaFechaLimite").Width = 90
    '    gvEntrega.Columns("EntregaFechaLimite").HeaderText = "Fecha Límite"
    '    gvEntrega.Columns("DetalleEntregaAno").Width = 30
    '    gvEntrega.Columns("DetalleEntregaAno").HeaderText = "Año"
    '    gvEntrega.Columns("MesNombre").Width = 80
    '    gvEntrega.Columns("MesNombre").HeaderText = "Mes"


    'End Sub

#End Region

#Region "Eventos de componentes"

    Private Sub txtFarmacia_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtFarmacia.TextChanged
        gboPeriodo.Enabled = True
    End Sub

    Private Sub btnAgregar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAgregar.Click

        If txtRecetas.Text <> "" And txtACargoOS.Text <> "" And txtTotalFacturado.Text <> "" Then
            gvDetalle.Rows.Add(CronogramaPresentacionAno, mesId, ObraSocialXPlanId, gvEntrega.SelectedRows(0).Cells("ColumnaDescripcion").Value, CInt(txtRecetas.Text), CDbl(txtTotalFacturado.Text), CDbl(txtACargoOS.Text))
            gvEntrega.Rows(indiceFila).DefaultCellStyle = estiloAnulada
            habilitarEntregas()
            deshabilitarDetalles()
        Else
            MsgBox("La cantidad de recetas, el monto a cargo de la Obra Social y el total facturado por la Farmacia son datos obligatorios. Complete esos datos para continuar.")
        End If
    End Sub

    Private Sub btnBuscar_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBuscar.Click
        frmSeleccionarFarmacia.frmLlamada = Me.Name
        frmSeleccionarFarmacia.ShowDialog()
        gboFarmacia.Enabled = False
        If farmaciaId <> -1 Then
            habilitarEntregas()
            deshabilitarFarmacia()
        End If
    End Sub

    Private Sub txtBuscarEntrega_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtBuscarEntrega.Click
        cargarGvEntrega(CInt(ddlCronogramaPresentacion.SelectedValue), Convert.ToInt32(txtFarmaciaId.Text))
    End Sub

    Private Sub gvEntrega_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles gvEntrega.DoubleClick

        If gvEntrega.SelectedRows(0).DefaultCellStyle.BackColor = Color.Gray Then
            MsgBox("Este detalle de entrega ya fue cargado.")
            Return
        End If

        indiceFila = gvEntrega.SelectedRows(0).Index
        habilitarDetalles()
        deshabilitarEntregas()
    End Sub

    Private Sub btnFinalizar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFinalizar.Click
        Dim idComprobanteGenereado As Integer
        idComprobanteGenereado = ComprobantePresentacionDAO.insertarComprobantePresentacion(Today, "", 1, CInt(txtFarmaciaId.Text))

        Dim TipoPresentacion As Integer = 4

        For Each fila As DataGridViewRow In gvDetalle.Rows
            Dim IdPresentacionGenerada As Integer
            IdPresentacionGenerada = PresentacionDAO.insertarPresentacion(Today, CInt(fila.Cells("Ano").Value), CInt(fila.Cells("Mes").Value), CInt(txtFarmaciaId.Text), CInt(fila.Cells("OSXPId").Value), 1)
            If IdPresentacionGenerada <> -1 Then
                'Pongo siempre el empleado 1 
                CaratulaPresentacionDAO.insertarCaratulaPresentacion(Today, CInt(fila.Cells("Recetas").Value), CDbl(fila.Cells("TotalFacturado").Value), 0, CDbl(fila.Cells("ACargoOS").Value), IdPresentacionGenerada, TipoCaratulaDAO.CARATULA_FARMACIA)
                'CaratulaPresentacionDAO.insertarCaratulaPresentacion(fecha, recetas, totFc, %boni, totalCo,PresentacionId, TipoCaratulaDAO)
                'TODO insertar el movimiento de cuenta corriente
                'TODO el tipo de movimiento 1 es el de crear una caratula original

                CuentaCorrienteDAO.CuentaCorrienteInsertarMovimiento(CInt(txtFarmaciaId.Text), TipoPresentacion, CDbl(fila.Cells("ACargoOS").Value), 0, CDate(Today), "Recepción de Presentación " & CStr(fila.Cells("OSXPDescripcion").Value))
            End If
            DetalleComprobantePresentacionDAO.insertarDetalleComprobantePresentacion(idComprobanteGenereado, CInt(fila.Cells("OSXPId").Value), Convert.ToInt32(fila.Cells("TotalFacturado").Value), Convert.ToInt32(fila.Cells("Recetas").Value), CDbl(fila.Cells("ACargoOS").Value))
            'DetalleComprobantePresentacionDAO.insertarDetalleComprobantePresentacion(idComprobante,OSPid,totalFacturado,CantRece, Cargo OS)
        Next
        MsgBox("El comprobante de recepción ha sido registrado correctamente.")
        frmComprobanteRecepcion.idComprobantePresentacion = idComprobanteGenereado
        frmComprobanteRecepcion.ShowDialog()
        frmMenuAuditoria.Show()
        Me.Dispose()

    End Sub


#End Region

#Region "Habilitar / Deshabilitar"

    Private Sub deshabilitarDetalles()
        gboCaratulas.Enabled = False
        txtRecetas.Text = ""
        txtACargoOS.Text = ""
        txtTotalFacturado.Text = ""
        'Modificar para que sean los datos correctos, fijarse en las consultas que cosas devuelven
        mesId = 0
        ObraSocialXPlanId = 0
        CronogramaPresentacionAno = 0
    End Sub

    Private Sub habilitarDetalles()
        gboCaratulas.Enabled = True
        txtRecetas.Text = ""
        txtACargoOS.Text = ""
        txtTotalFacturado.Text = ""
        'Modificar para que sean los datos correctos, fijarse en las consultas que cosas devuelven
        mesId = gvEntrega.SelectedRows(0).Cells("ColumnaMesId").Value
        ObraSocialXPlanId = Convert.ToInt32(gvEntrega.SelectedRows(0).Cells("ColumnaObraSocialXPlanId").Value)
        CronogramaPresentacionAno = gvEntrega.SelectedRows(0).Cells("ColumnaCronogramaPresentacionAno").Value
    End Sub

    Private Sub deshabilitarEntregas()
        gboPeriodo.Enabled = False
    End Sub

    Private Sub habilitarEntregas()
        gboPeriodo.Enabled = True
    End Sub

    Private Sub deshabilitarFarmacia()
        gboFarmacia.Enabled = False
    End Sub

#End Region


    Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSalir.Click
        Me.Dispose()
    End Sub

    Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelar.Click
        Limpiar()
    End Sub

    Private Sub btnCancelarDetalle_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelarDetalle.Click
        habilitarDetalles()
        txtRecetas.Text = ""
        txtTotalFacturado.Text = ""
        txtACargoOS.Text = ""
    End Sub

    Private Sub Limpiar()

        txtFarmacia.Text = ""
        txtRecetas.Text = ""
        txtTotalFacturado.Text = ""
        txtACargoOS.Text = ""

        gvDetalle.DataSource = Nothing
        gvEntrega.Rows.Clear()
        deshabilitarDetalles()
        deshabilitarEntregas()
        gboFarmacia.Enabled = True


    End Sub
End Class